/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package network.packets;

import datamodel.Position;
import utils.StringUtils;
import utils.Utils;

/**
 *
 * @author Kvest
 */
public class TaxiParkingsResponce2 extends TaxiParkingsResponce
{
    public TaxiParkingsResponce2(byte[] data)
    {
        super(data);
        id = TAXI_PARKINGS_RESPONCE2;
    }
    
    protected void parse(byte[] data)
    {
        int offset = 0;

        //Пропускаем название пакета
        byte[] buffer4 = new byte[4];
        System.arraycopy(data, offset, buffer4, 0, buffer4.length);
        offset += buffer4.length + Utils.byteToInt(buffer4);
        
        //ResponseDate - нам не надо
        //offset += 8;
        
        //ChangeTaxiParkingsDate 
        byte[] buffer = new byte[8];
        System.arraycopy(data, offset, buffer, 0, buffer.length);
        offset += buffer.length;
        lastUpdate = Utils.byteToDate(buffer);
            
        //Количество
        System.arraycopy(data, offset, buffer4, 0, buffer4.length);
        offset += buffer4.length;
        int count = Utils.byteToInt(buffer4);


        //ID стоянок
        for (int i = 0; i < count; i++)
        {
            System.arraycopy(data, offset, buffer4, 0, buffer4.length);
            offset += buffer4.length;
            addPosition(new Position(Utils.byteToInt(buffer4)));
        }

        //размер следующей коллекции(равен count)
        offset += 4;

        int strSize;
        
        //Название стоянки
        for (int i = 0; i < count; i++)
        {
            System.arraycopy(data, offset, buffer4, 0, buffer4.length);
            offset += buffer4.length;
            strSize = Utils.byteToInt(buffer4);
            buffer = new byte[strSize];
            System.arraycopy(data, offset, buffer, 0, buffer.length);
            offset += buffer.length;
            getPosition(i).setParkingName(StringUtils.bytesToStr(buffer));
        }

        //размер следующей коллекции(равен count)
        offset += 4;

        //Район
        for (int i = 0; i < count; i++)
        {
            System.arraycopy(data, offset, buffer4, 0, buffer4.length);
            offset += buffer4.length;
            strSize = Utils.byteToInt(buffer4);
            buffer = new byte[strSize];
            System.arraycopy(data, offset, buffer, 0, buffer.length);
            offset += buffer.length;
            getPosition(i).setParkingRegion(StringUtils.bytesToStr(buffer));
        }
        
        buffer4 = null;
        buffer = null;
    }
}
